home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO102.dsk / READER / DOC.READER.PLUS.bas < prev    next >
BASIC Source File  |  2012-02-16  |  6KB  |  133 lines

  1. 100  REM  AWP/TEXT FILE VIEWER, MULTIPLE DIRECTORIES, VER 1.0, 01/09/90
  2. 110  REM   TONY PIZZA, 1553 ROYCE CT,CAMARILLO  CA 93010
  3. 120  REM   COMPUSERVE 72257,160; GENIE A.PIZZA
  4. 140  ONERR  GOTO 4010
  5. 150  PRINT  CHR$(4)"-DOGPAW"
  6. 160  REM  DOGPAW VER 3.30 BY KARL BUNKER, 321 S. HUNTINGTON AVE, BOSTON MA 02130
  7. 170  REM  CHECK FOR 80 COLUMN
  8. 180  TEXT : HOME :VS = ( INT( PEEK( -15604)/16) = 8) *3
  9. 185  POKE 251,VS: REM  SAVE SLOT
  10. 190  PRINT  CHR$(4)"PR#"VS
  11. 230  PRINT "            ";: INVERSE : PRINT "AWP/TEXT READER, DIRECTORIES, VER. 1.0": NORMAL : PRINT : HTAB 26: PRINT "BY TONY PIZZA"
  12. 235  HTAB 26: PRINT "    1/9/90": PRINT 
  13. 240  PRINT "    THIS PROGRAM IS INTENDED TO SHOW THE CONTENTS OF UP TO 60"
  14. 250  PRINT "    APPLEWORKS AND TEXT FILES USING THE DOGPAW UTILITY FROM KARL BUNKER"
  15. 270  PRINT : PRINT 
  16. 280  PRINT "    TO USE THIS PROGRAM:"
  17. 290  PRINT 
  18. 310  PRINT "    1 - SELECT THE SLOT AND DRIVE CONTAINING THE DISK WITH FILES TO VIEW."
  19. 320  PRINT 
  20. 330  PRINT "    2 - THEN SELECT THE PATHNAME OF THE DESIRED DIRECTORY.  THIS"
  21. 340  PRINT "        WILL NOT BE REQUIRED IF THERE ARE NO SUBDIRECTORIES."
  22. 350  PRINT : PRINT "        ESCAPE TO QUIT, ANY KEY TO CONTINUE ": PRINT 
  23. 355  HTAB 9: GET A$: PRINT A$
  24. 360  IF A$ =  CHR$(27)  THEN  GOTO 4100
  25. 1000  REM  SET UP SELECTOR
  26. 1014  PRINT  CHR$(4)"FRE": CLEAR : REM  CLEAR FOR NEXT DIRECTORY
  27. 1015  DIM DS$(20): DIM PF$(20): DIM F$(60): DIM TP$(60): DIM P$(22)
  28. 1020  HOME :D$ =  CHR$(4)
  29. 1030  VTAB 2: HTAB 8: PRINT "DRIVE SELECTION": REM  MLI ONLINE CALL WOULD BE NICE SOMEDAY
  30. 1040 DS$(1) = "DRIVE 3, SLOT 1":DS$(2) = "DRIVE 3, SLOT 2"
  31. 1050 DS$(3) = "DRIVE 4, SLOT 1":DS$(4) = "DRIVE 4, SLOT 2"
  32. 1060 DS$(5) = "DRIVE 5, SLOT 1":DS$(6) = "DRIVE 5, SLOT 2"
  33. 1070 DS$(7) = "DRIVE 6, SLOT 1":DS$(8) = "DRIVE 6, SLOT 2"
  34. 1080 DS$(9) = "DRIVE 7, SLOT 1":DS$(10) = "DRIVE 7, SLOT 2"
  35. 1090 NC = 10: REM  # OF CHOICES
  36. 1100  FOR N = 1 TO NC:P$(N) = DS$(N): NEXT : REM  SELECTOR USES P$(N)
  37. 1105  GOSUB 5000:SEL = N: REM  SELECTOR RETURNS VALUE N
  38. 1110 SL = 2 + INT(SEL/2 +.51)
  39. 1120 DR = 1: IF SEL/2 - INT(SEL/2) = 0  THEN DR = 2
  40. 1130  ONERR  GOTO 4000: REM  EMPTY SLOT/DRIVE SELECTED
  41. 1140  PRINT D$"PREFIX,S"SL",D"DR: REM  SET PREFIX
  42. 1150  PRINT D$"PREFIX": INPUT PF$: REM  GET PREFIX NAME (WITHOUT EXTRA SPACES)
  43. 1160  HOME :PF$(1) = PF$
  44. 1170  VTAB 2: HTAB 4: PRINT "DIRECTORY: "PF$(1)
  45. 2000  REM  GET A DIRECTORY
  46. 2010 D = 1
  47. 2020  PRINT D$"OPEN ";PF$",TDIR"
  48. 2030  PRINT D$"READ "PF$
  49. 2040  INPUT DR$
  50. 2050  INPUT I$
  51. 2060  ONERR  GOTO 2110: REM  END READ
  52. 2070  INPUT I$
  53. 2080 TP$ =  MID$ (I$,18,3)
  54. 2090  IF TP$ = "DIR"  THEN D = D +1:DR$ =  MID$ (I$,2,16):PF$(D) = PF$(1) +DR$: HTAB 12: REM  DR$ IS PADDED WITH EXTRA SPACES
  55. 2100  GOTO 2070
  56. 2110  CALL 62248: POKE 216,0: PRINT D$"CLOSE"
  57. 2120  IF D = 1  THEN PF$ = PF$(1): GOTO 3010: REM  NO SUBDIRECTORIES
  58. 2125  FOR N = 1 TO D:P$(N) = PF$(N): NEXT : REM  SEL USES P$(N)
  59. 2130 NC = D: GOSUB 5000:SEL = N
  60. 2140 PF$ = PF$(SEL)
  61. 2141  IF SEL = 1  THEN PF$ = PF$(SEL): PRINT D$"PREFIX"PF$: GOTO 3010: REM  CHECK VOLUME DIRECTORY
  62. 2142  PRINT D$"PREFIX"PF$
  63. 2145  GOTO 1150: REM  CHECK SUBDIR FOR MORE SUBDIR, LET PRODOS STRIP EXTRA SPACES
  64. 3000  REM   GET FILES:REM FINALLY GET AWP/TXT FILES
  65. 3010 I = 1
  66. 3015  GOSUB 4040
  67. 3020  PRINT D$"OPEN ";PF$",TDIR"
  68. 3030  PRINT D$"READ "PF$
  69. 3040  INPUT DR$
  70. 3050  INPUT I$
  71. 3060  ONERR  GOTO 3110
  72. 3065  INPUT I$
  73. 3070  INPUT I$
  74. 3080 TP$(I) =  MID$ (I$,18,3)
  75. 3097  IF TP$(I) = "AWP"  OR TP$(I) = "TXT"  THEN F$(I) =  MID$ (I$,2,16):I = I +1
  76. 3100  GOTO 3070
  77. 3110  CALL 62248: POKE 216,0: PRINT D$"CLOSE"
  78. 3120 NE = I -1: REM  # OF AWP/TXT FILES
  79. 3130  HOME : REM   PUT FILES IN COLUMNS 
  80. 3135  IF NE =  >60  THEN  PRINT "Sorry, can only show the first 60 ";
  81. 3140  PRINT "Files in ";PF$: PRINT 
  82. 3150  FOR I = 1 TO 20: PRINT I;: POKE 36,3: PRINT F$(I);: POKE 36,20: PRINT TP$(I): NEXT 
  83. 3152  IF NE >20  THEN  VTAB 3: FOR I = 21 TO 40: POKE 36,25: PRINT I;: POKE 36,28: PRINT F$(I);: POKE 36,45: PRINT TP$(I): NEXT 
  84. 3154  IF NE >40  THEN  VTAB 3: FOR I = 41 TO 60: POKE 36,50: PRINT I;: POKE 36,53: PRINT F$(I);: POKE 36,75: PRINT TP$(I): NEXT 
  85. 3160  PRINT : INPUT "SELECT FILE TO VIEW BY NUMBER, OR RETURN FOR NO SELECTION > ";SF$
  86. 3164 SF =  VAL(SF$)
  87. 3165  IF SF >NE  THEN  PRINT  CHR$(7): VTAB 24: GOTO 3130
  88. 3167  IF F$(SF) = ""  THEN  GOTO 3200
  89. 3168  IF SF <1  OR SF >NE  THEN  PRINT  CHR$(7): VTAB 24: GOTO 3130
  90. 3170  GOSUB 4200: PRINT D$;"DOGPAW";F$(SF)
  91. 3172 VS =  PEEK(251): PRINT  CHR$(4)"PR#"VS: REM  SOMETIMES DOGPAW ENDS IN 40 COL
  92. 3175  GOTO 3130: REM  ALLOW FOR FILE CHOICE AGAIN
  93. 3200  HOME 
  94. 3210 Q$(1) = "SELECT ANOTHER FILE"
  95. 3220 Q$(2) = "SELECT ANOTHER PATH"
  96. 3230 Q$(3) = "QUIT TO BASIC"
  97. 3235 NC = 3
  98. 3240  FOR N = 1 TO NC:P$(N) = Q$(N): NEXT 
  99. 3245  GOSUB 5000:SEL = N
  100. 3250  ON SEL GOTO 3130,1014,4100
  101. 4000  POKE 216,0: VTAB 18: PRINT "NO DISK THERE, TRY AGAIN": PRINT  CHR$(7): FOR I = 1 TO 250: NEXT : GOTO 1020
  102. 4010  POKE 216,0: VTAB 18: PRINT "THIS PROGRAM ALSO NEEDS DOGPAW ON DISK TO WORK": END 
  103. 4040  PRINT : PRINT : PRINT : VTAB 21: PRINT "WORKING - DON'T RESET"
  104. 4050  PRINT "TAKES TIME WHEN YOU HAVE MANY FILES": PRINT : RETURN 
  105. 4100  PRINT : PRINT  CHR$(4)"NODOGPAW"
  106. 4110  REM 
  107. 4120  REM 
  108. 4130  REM 
  109. 4135  PRINT  CHR$(4)"PREFIX/"
  110. 4140  PRINT  CHR$(4)"PREFIX": INPUT PF$
  111. 4145  PRINT  CHR$(4)"PR#"VS: PRINT 
  112. 4150  HOME : VTAB 10: PRINT "CURRENT PATH LOGGED IS "PF$
  113. 4160  END 
  114. 4200  HOME : PRINT : PRINT "Print Out ? (printer in Slot 1 only)": PRINT "Y for Printout, Any key for screen >";
  115. 4210  GET A$: PRINT A$
  116. 4220  IF A$ = "Y"  OR A$ = "y"  THEN  PRINT D$"pr#1"
  117. 4230  RETURN 
  118. 5000  REM 
  119. 5010 P = 1:N = 1
  120. 5050  PRINT  CHR$(24): INVERSE : VTAB 24: PRINT "ARROWS, RETURN TO RUN, ESC TO QUIT.";: NORMAL 
  121. 5060  FOR N = 1 TO NC: GOSUB 5160: NEXT 
  122. 5070  IF P <1  THEN P = NC
  123. 5080  IF P >NC  THEN P = 1
  124. 5090 N = P: INVERSE : GOSUB 5160: NORMAL : CALL 64538: GOSUB 5230: PRINT 
  125. 5100  IF A$ =  CHR$(8)  OR A$ =  CHR$(11)  THEN P = P -1
  126. 5110  IF A$ =  CHR$(10)  OR A$ =  CHR$(21)  THEN P = P +1
  127. 5120  IF A$ =  CHR$(13)  THEN  GOTO 5150
  128. 5130  IF A$ =  CHR$(27)  THEN  CALL 62248: GOTO 3200
  129. 5140  GOSUB 5160: GOTO 5070
  130. 5150  RETURN : REM  RETURNS WITH N
  131. 5160  VTAB 3 +N: HTAB 8: PRINT P$(N): RETURN 
  132. 5230 KP =  PEEK(49152): IF KP <128  THEN 5230
  133. 5240 KP = KP -128:A$ =  CHR$(KP): POKE 49168,O: RETURN